home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / artemis / artsrc2 / gwrtreg.asm < prev    next >
Assembly Source File  |  1994-06-01  |  2KB  |  95 lines

  1. ;    私製ライブラリ・グラフィック篇
  2. ;    (c) MATSUUCHI Ryosuke in Dec,1992
  3. ;
  4. ;    gwrtreg.asm
  5. ;
  6. ;    1992.12.28(Sun)
  7.  
  8.         public    _gwrtreg, gwrtreg
  9.  
  10.         include    grplib.inc
  11.         
  12.         assume    cs:cseg, ds:dseg
  13.  
  14.  
  15. dseg segment dword 'DATA'
  16. dseg ends
  17.  
  18.  
  19.  
  20. cseg segment dword 'CODE'
  21.  
  22. ;---------------------------------------------------------------
  23. ;    _gwrtreg : 表示機能レジスタへの書き込み
  24. ;        in  AX:レジスタ番号
  25. ;            EDX:データ
  26. ;
  27. ;    void    gwrtreg(int reg,  unsigned int dat)
  28. ;---------------------------------------------------------------
  29.  
  30. ;レジスタ番号と実際のレジスタとの対応:
  31. ;    (番号) (サイズ)    (機能)
  32. ;    0    DWord    パックドピクセルマスクレジスタ
  33.  
  34.  
  35. gwrtreg        proc    near
  36.         mov    ax,[esp+4]
  37.         mov    edx,[esp+8]
  38.         call    _gwrtreg
  39.         ret
  40. gwrtreg        endp
  41.  
  42.  
  43. _gwrtreg    proc
  44.         push    eax
  45.         push    ebx
  46.         push    ecx
  47.         push    edx
  48.         mov    bx,ax        ;BX  = reg#
  49.         mov    ecx,edx        ;ECX = data
  50.         cmp    ax,0
  51.         jne    #0
  52.         ;            ;AX=0 (パックドピクセルマスクレジスタ)
  53.         call    reg_packPixel
  54.         jmp    #1
  55. #0:
  56. #1:        pop    edx
  57.         pop    ecx
  58.         pop    ebx
  59.         pop    eax
  60.         ret
  61. _gwrtreg    endp
  62.  
  63.  
  64. ;  reg_packPixel : パックドピクセルマスクレジスタへの書き込み
  65. ;    in  ECX : data
  66. ;    reg eax,ecx,edx
  67.  
  68. reg_packPixel    proc
  69.         mov    dx,458h        ;  (下位ワードの書き込み)
  70.         xor    al,al
  71.         out    dx,al
  72.         add    dx,2
  73.         mov    al,cl
  74.         out    dx,al
  75.         inc    dx
  76.         mov    al,ch
  77.         out    dx,al
  78.         shr    ecx,16        ;  (上位ワードの書き込み)
  79.         mov    dx,458h
  80.         mov    al,1
  81.         out    dx,al
  82.         add    dx,2
  83.         mov    al,cl
  84.         out    dx,al
  85.         inc    dx
  86.         mov    al,ch
  87.         out    dx,al
  88.         ret
  89. reg_packPixel    endp
  90.  
  91.  
  92. cseg ends
  93.  
  94. end
  95.